with pajekfileprocess; use pajekfileprocess;

package Travellers is
    
    type TravellerManager;
    type Traveller;
    
    type TravellerManagerPointer is access TravellerManager;
    type TP is access Traveller;
    
    -- Traveller Task definition
    
    type VisiteArray is array(Natural range <>) of boolean;
    type VisiteArrayPointer is access VisiteArray;
    
    task type Traveller(manager: TravellerManagerPointer; list: NodeListPointer; initial: Integer ) is
    end Traveller;

    
    -- Traveller Manager definition
    
    type Array_Travellers is array(Integer range <>) of TP;
    type PTR_Array_Travellers is access Array_Travellers;
    
    task type TravellerManager(maxRunning: Integer;totalTravellers: Integer;list: NodeListPointer) is
        entry setManager(manager: TravellerManagerPointer);
        Entry CreateTravellers;
        entry RemoveTraveller(distance: Integer);
    end TravellerManager;
    
  
    
end Travellers;